package com.iespring.service.admin.region;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.iespring.bean.admin.region.po.RegionPo;
import com.iespring.bean.admin.region.vo.RegionVo;
import com.iespring.bean.common.CommonData;
import com.iespring.mapper.admin.RegionMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @author weigwen
 * @Description:
 * @Date 2022/12/28 20:50
 */

@Service
public class RegionServiceImpl implements RegionService {

    @Autowired
    RegionMapper regionMapper;

    @Override
    public CommonData regionList() {
        //先根据pid为0查询到省级list
        List<RegionVo> regionVos1 = regionMapper.selectRegionByPid(0);
        for (RegionVo regionVo1 : regionVos1) {
            //根据省的id查询到对应的市级list
            List<RegionVo> regionVos2 = regionMapper.selectRegionByPid(regionVo1.getId());
            for (RegionVo regionVo2 : regionVos2) {
                //根据市的id查询到对应的县级list
                List<RegionVo> regionVos3 = regionMapper.selectRegionByPid(regionVo2.getId());
                //给市添加对应的县级list
                regionVo2.setChildren(regionVos3);
            }
            //给省添加对应的市级list
            regionVo1.setChildren(regionVos2);
        }
        PageHelper.startPage(1, regionVos1.size());
        PageInfo<RegionVo> pageInfo = new PageInfo<>(regionVos1);
        PageHelper.clearPage();
        return CommonData.data(pageInfo);
    }

//    @Override
//    public CommonData regionList2() {
//        List<RegionVo> regionVos1 = null;
//        List<RegionVo> regionVos2 = null;
//        List<RegionVo> regionVos3 = null;
//        //先根据pid为0查询到省级list
//        List<RegionPo> regionPos1 = regionMapper.selectRegionByPid2(0);
//        for (RegionPo regionPo1 : regionPos1) {
//
//            //根据省的id查询到对应的市级list
//            List<RegionPo> regionPos2 = regionMapper.selectRegionByPid2(regionPo1.getId());
//            for (RegionPo regionPo2 : regionPos2) {
//                //根据市的id查询到对应的县级list
//                List<RegionPo> regionPos3 = regionMapper.selectRegionByPid2(regionPo2.getId());
//                for (RegionPo regionPo3 : regionPos3) {
//                    //将县级Po对象数据封装到县级Vo对象中
////                    RegionVo regionVo3 = new RegionVo(regionPo3.getId(), regionPo3.getName(), regionPo3.getType(), regionPo3.getCode(), null);
//                    RegionVo regionVo3 = new RegionVo();
//                    regionVo3.setId(regionPo3.getId());
//                    regionVo3.setName(regionPo3.getName());
//                    regionVo3.setType(regionPo3.getType());
//                    regionVo3.setCode(regionPo3.getCode());
//                    //将县级Vo对象封装到县级Volist中
//                    regionVos3.add(regionVo3);
//                }
//                RegionVo regionVo2 = new RegionVo(regionPo2.getId(), regionPo2.getName(), regionPo2.getType(), regionPo2.getCode(), regionVos3);
//                regionVos2.add(regionVo2);
//            }
//            RegionVo regionVo1 = new RegionVo(regionPo1.getId(), regionPo1.getName(), regionPo1.getType(), regionPo1.getCode(), regionVos2);
//            regionVos1.add(regionVo1);
//        }
//        PageHelper.startPage(1, regionVos1.size());
//        PageInfo<RegionVo> pageInfo = new PageInfo<>(regionVos1);
//        return CommonData.data(pageInfo);
//    }

}
